<html>
<head>
<link href="../../Objects/sofa_white.css" rel="stylesheet" type="text/css" />
</head>
<body>
	<div id="contenu">
		
		<center><h3>RungeKutta Solver</h3></center>		
		<center><img src="ExplicitEulerSolver_stable.png" align="middle" width="300"></center>

		<div id="orangeText">Description</div><br>
	<div align="left">	
		Like EulerSolver in Sofa, RungeKuttaSolver denotes the ODE solver using the explicit integration scheme for computing of 
		the dynamic system. This integration scheme explicitly resolves the system in relation to time: given the mechanical state
		at time T<sub>n</sub>, compute the state at time T<sub>n+1</sub>=T<sub>n</sub> + dt. The difference with RungeKuttaSolver is that this 
		integration use a more sophisticated algorithm for the computation of the state at time T<sub>n+1</sub>. Therefore there is more stability
		and can use a higher time step than the EulerSolver one. Otherwise, RungeKuttaSolver uses a more general explicit method than EulerSolver.
        <br>

		<div id="orangeText" align="left">Key points</div>
		<br>
		As with every Explicit Integration method, RungeKutta accumulates errors for each time step. Therefore, two criteria must be 
		controlled when using it : 
		<ul>
                  <li>The time step dt.</li>
                  <li>The dynamic of the system.</li>
                </ul>
		<p>
		However, RungeKutta4 is certainly more stable than Explicit Euler: The convergence error in RungeKutta4 is in relation to o(dt<sup>4</sup>), 
		but in Explicit Euler it's only o(dt). For this example, RungeKutta can resolve the system with dt=0.001, but not the ExplicitEuler (0.0001). 
        <br>
        <br>
		Users can try several solvers with different values of the dt parameter to gain an idea of the solver's differences (also test the dependence of the solver 
		according to the dynamics of the system by using [Shift + left mouse]).
		<p>
	</div>
		<center>
			<img src="ExplicitEulerSolver_unstabledynamically.png" align="middle" width="300">
                </center>
<!--
		<div id="orangeText">Related</div>

 		<p id="orangeText">
			<a href="../../Components/solver/StaticSolver.scn">Static Solver</a>, 
			<a href="../../Components/solver/ExplicitEuler.scn">Explicit Euler Solver</a>, 
			<a href=".scn">Central Difference Solver</a>,
			<a href="../../Components/solver/EulerImplicitSolver.scn">Implicit Euler Solver</a>,
			<a href="../../Components/solver/NewmarkImplicitSolver.scn">Implicit Newmark Solver</a>.
		 </p>
-->
               

	</div>
</body>
</html>
